/*
 * extension.cpp
 *
 *  Created on: 10/12/2012
 *      Author: guidi
 */
#include <string>
#include "contenedor-nombre-archivo.h"

ContenedorNombreArchivo::ContenedorNombreArchivo() {
	nombre = "";
	extension = "";
	posPunto = 0;
}

ContenedorNombreArchivo::ContenedorNombreArchivo(std::string original) {
	init(original);
}

void ContenedorNombreArchivo::operator=(std::string original) {
	init(original);
}

void ContenedorNombreArchivo::init(std::string original) {
	posPunto = 0;
	if (original.size() == 0) {
		nombre = "";
		extension = "";
	} else {
		posPunto = original.find_last_of('.');
		if (posPunto == original.size()) {
			nombre = original;
		} else {
			nombre = obtenerNombre(original);
			extension = obtenerExtension(original);
		}
	}
}

bool ContenedorNombreArchivo::tieneExtension(std::string extension) {
	return (this->extension == extension);
}

std::string ContenedorNombreArchivo::obtenerNombre(std::string cadena) {
	std::string resultado = "";
	if (posPunto != 0) {
		if (posPunto < cadena.size()) {
			resultado = cadena.substr(0, posPunto);
		}
		else {
			resultado = cadena;
		}
	}
	return resultado;
}

std::string ContenedorNombreArchivo::obtenerExtension(std::string cadena) {
	std::string resultado = "";
	if (posPunto < cadena.size() - 1) {
		resultado = cadena.substr(posPunto + 1);
	}
	return resultado;
}

std::string ContenedorNombreArchivo::getNombre() {
	return nombre;
}

std::string ContenedorNombreArchivo::getExtension() {
	return extension;
}
